package com.mikufufu.blog.mapper;

import com.mikufufu.blog.model.entity.Nav;
import com.mikufufu.blog.model.vo.admin.NavVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface NavMapper extends BaseMapper<Nav> {

    /**
     * 根据父ID查询导航条目列表。
     *
     * @param parentId 父导航条目的ID，用于指定查询子导航条目。
     * @return 返回一个导航条目列表，这些条目都是指定父导航条目的子条目。
     */
    List<Nav> listByParentId(@Param("parentId") Integer parentId);

    /**
     * 根据父ID和状态查询导航条目列表。
     *
     * @param parentId 父导航条目的ID，用于指定查询子导航条目。
     * @param status 导航条目的状态，用于过滤查询结果，只返回指定状态的导航条目。
     * @return 返回一个导航条目列表，这些条目都是指定父导航条目的子条目，并且状态匹配指定的状态。
     */
    List<Nav> listByParentIdAndStatus(@Param("parentId") Integer parentId, @Param("status") Integer status);

    List<Nav> getNavListByRole(@Param("roleId") Integer roleId);

    List<NavVO> getTreeByRoleId(Integer roleId);
}